/* syntax highlight*/
figure.highlight {
    background:    #fff;
    margin:        10px 0;
    border-radius: 3px;
    line-height:   1.2em;
    color:         #333;
    border:        1px solid #d9d9d9;
    overflow:      hidden;

    table {
        display:    block;
        width:      100%;
        overflow-y: hidden;
        overflow-x: auto;
    }
    // Reset for tag `pre` and  for class `.gutter`, `.code`, `.tag`
    pre,
    .gutter,
    .code,
    .tag {
        font-family: Menlo;
        border:      none;
        padding:     0;
        margin:      0;
        // To override cursor attribute of `.tag` components
        cursor:      text;
    }
    // Meta bar which contains name of the file and his link
    figcaption {
        font-size:     13px;
        padding:       10px 15px;
        margin:        0;
        background:    #f7f7f7;
        border-bottom: 1px solid #d9d9d9;
        color:         #999999;

        a {
            float: right;
        }
    }
    // Gutter which contains line numbers
    .gutter {
        background:   #fff;
        border-right: 1px solid #d9d9d9;
        padding:      0.3em 0.5em;

        .line {
            color: #aaaaaa;
        }
    }
    // Code container
    .code {
        padding: 0.3em 0.3em 0.3em 1em;
    }
    // All lines in gutter and code container
    .line {
        height:    1.2em;
        font-size: 13px;
    }
}

// Gist
.gist {
    .line,
    .line-number {
        font-family: Menlo;
        font-size:   1em;
        margin:      0 0 5px 0;
    }
}

// Highlight code coloration
.highlight {
    // General
    .comment {
        color: #969896;
    }
    .string {
        color: #df5000;
    }
    .keyword {
        color: #a71d5d;
    }
    // ApacheConf
    &.apacheconf .code {
        .common,
        .cbracket,
        .keyword {
            color: #0086b3;
        }
        .sqbracket {
            color: #df5000;
        }
        .tag {
            color: #63a35c;
        }
    }
    // Bash
    &.bash .code {
        .shebang {
            color: #969896;
        }
        .literal,
        .built_in {
            color: #0086b3;
        }
        .variable {
            color: #333;
        }
        .title {
            color: #795da3;
        }
    }
    // coffescript
    &.coffeescript .code {
        .title {
            color: #795da3;
        }
        .literal,
        .built_in,
        .number {
            color: #0086b3;
        }
        .reserved,
        .attribute {
            color: #1d3e81;
        }
        .subst,
        .regexp {
            color: #df5000;
        }
    }
    // C/C++
    &.cpp .code,
    &.c .code {
        .preprocessor {
            color: #df5000;
        }
        .title {
            color: #795da3;
        }
        .number,
        .built_in {
            color: #0086b3;
        }
    }
    // C#
    &.cs .code {
        .preprocessor,
        .preprocessor .keyword {
            color: #333;
        }
        .title {
            color: #795da3;
        }
        .number,
        .built_in {
            color: #0086b3;
        }
        .xmlDocTag {
            color: #63a35c;
        }
    }
    // CSS
    &.css .code {
        .at_rule,
        .important {
            color: #a71d5d;
        }
        .attribute,
        .hexcolor,
        .number,
        .function {
            color: #0086b3;
        }
        .attr_selector,
        .value {
            color: #333;
        }
        .id,
        .class,
        .pseudo {
            color: #795da3;
        }
        .tag {
            color: #63a35c;
        }
    }
    // Diff
    &.diff .code {
        .chunk {
            color:       #795da3;
            font-weight: bold;
        }
        .addition {
            color:            #55a532;
            background-color: #eaffea;
        }
        .deletion {
            color:            #bd2c00;
            background-color: #ffecec;
        }
    }
    // HTTP
    &.http .code {
        .literal,
        .attribute {
            color: #0086b3;
        }
        .request {
            color: #a71d5d;
        }
    }
    // INI
    &.ini .code {
        .title {
            color: #795da3;
        }
        .setting {
            color: #a71d5d;
        }
        .value,
        .keyword {
            color: #333;
        }
    }
    // JAVA
    &.java .code {
        .title {
            color: #795da3;
        }
        .javadoc {
            color: #969896;
        }
        .javadoctag {
            color: #a71d5d;
        }
        .number {
            color: #0086b3;
        }
        .params {
            color: #1d3e81;
        }
    }
    // JavaScript
    &.js .code {
        .title {
            color: #795da3;
        }
        .javadoc {
            color: #969896;
        }
        .tag,
        .javadoctag {
            color: #a71d5d;
        }
        .tag .title {
            color: #333;
        }
        .regexp {
            color: #df5000;
        }
        .built_in,
        .literal,
        .number {
            color: #0086b3;
        }
    }
    // JSON
    &.json .code {
        .attribute {
            color: #df5000;
        }
        .number {
            color: #0086b3;
        }
    }
    // Makefile
    &.mak .code {
        .constant {
            color: #333;
        }
        .variable {
            color: #df5000;
        }
        .title {
            color: #795da3;
        }
        .keyword {
            color: #0086b3;
        }
    }
    // Markdown
    &.md .code {
        .value,
        .link_label,
        .strong,
        .emphasis,
        .blockquote {
            color: #df5000;
        }
        .link_reference,
        .code {
            color: #0086b3;
        }
        .link_url {
            text-decoration: underline;
        }
    }
    // Nginx
    &.nginx .code {
        .title {
            color: #a71d5d;
        }
        .built_in {
            color: #0086b3;
        }
        .regexp,
        .number {
            color: #df5000;
        }
        .variable {
            color: #333;
        }
    }
    // Objective-C
    &.objectivec .code {
        .preprocessor {
            color: #a71d5d;

            .title {
                color: #df5000;
            }
        }
        .title {
            color: #795da3;
        }
        .literal,
        .number,
        .built_in {
            color: #0086b3;
        }
    }
    // Perl
    &.perl .code {
        .sub {
            color: #795da3;
        }
        .regexp {
            color: #df5000;
        }
    }
    // PHP
    &.php .code {
        .phpdoc {
            color: #a71d5d;
        }
        .regexp {
            color: #df5000;
        }
        .literal,
        .number {
            color: #0086b3;
        }
        .title {
            color: #795da3;
        }
    }
    // Python
    &.python .code {
        .decorator,
        .title {
            color: #795da3;
        }
        .number {
            color: #0086b3;
        }
    }
    // Ruby
    &.ruby .code {
        .parent,
        .title {
            color: #795da3;
        }
        .prompt,
        .constant,
        .number,
        .subst .keyword,
        .symbol {
            color: #0086b3;
        }
    }
    // SQL
    &.sql {
        .built_in {
            color: #a71d5d;
        }
        .number {
            color: #0086b3;
        }
    }
    // XML, HTML
    &.xml {
        .tag {
            color: #333;
        }
        .value {
            color: #df5000;
        }
        .attribute {
            color: #795da3;
        }
        .title {
            color: #63a35c;
        }
    }
    // Puppet
    &.puppet {
        .title {
            color: #795da3;
        }
        .function {
            color: #0086b3;
        }
    }
    // LESS
    &.less {
        .tag,
        .at_rule {
            color: #a71d5d;
        }
        .number,
        .hexcolor,
        .function,
        .attribute {
            color: #0086b3;
        }
        .built_in {
            color: #df5000;
        }
        .id,
        .pseudo,
        .class {
            color: #795da3;
        }
    }
    // SCSS
    &.scss {
        .tag,
        .at_rule,
        .important {
            color: #a71d5d;
        }
        .preprocessor,
        .number,
        .hexcolor,
        .function,
        .attribute {
            color: #0086b3;
        }
        .variable {
            color: #333;
        }
        .built_in {
            color: #df5000;
        }
        .id,
        .pseudo,
        .class {
            color: #795da3;
        }
    }
    // Stylus
    &.stylus {
        .at_rule {
            color: #a71d5d;
        }
        .tag {
            color: #63a35c;
        }
        .number,
        .hexcolor,
        .attribute,
        .params {
            color: #0086b3;
        }
        .class,
        .id,
        .pseudo,
        .title {
            color: #795da3;
        }
    }
    // Go
    &.go {
        .typename {
            color: #a71d5d;
        }
        .built_in,
        .constant {
            color: #0086b3;
        }
    }
    // Swift
    &.swift {
        .preprocessor {
            color: #a71d5d;
        }
        .title {
            color: #795da3;
        }
        .built_in,
        .number {
            color: #0086b3;
        }
    }
}